/**
 * 生成器Generators
 * author:dengyiping
 * date:2016/07/29
 */

/*
    生成器函数：
    1. 使用funciton*声明
    2. 在生成器函数内部有一种类似return的语法：关键字yield
    （yield和return区别：普通函数值可以return一次，而生成器函数可以yield一次或多次；
    在生成器执行过程中，遇到yield表达式即展厅，后续可恢复执行状态）
*/
function* robot(name) {
    yield "你好" + name + "!";
    yield "My name is Baymax " ;

    if(name.startsWith("D")){
        yield name + ",首字母是D"; 
    }

    yield "走，上车~";
}

var generat = robot("Dengyp");
while(1){
    var obj = generat.next();
    console.log(obj);
    if(obj.done == true){
        break;
    }
    console.log();
}